package com.qiao.dfw.manager;

import com.qiao.dfw.entity.Item;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 乔占江 qq:59663479
 * @version 1.0
 * @date 2024/1/19 23:39
 * @description
 */
public class BattleItemManager {
    /**
     * 对局中的玩家 拥有的 道具; key 角色在对局中的位置
     */
    private Map<Integer, Map<Integer, Integer>> itemMap = new HashMap<>();

    /**
     * 有多少个玩家
     *
     * @param count
     */
    public void init(int count) {
        itemMap.clear();
        for (int i = 0; i < count; i++) {
            itemMap.put(i, new HashMap<>());
        }
    }

    /**
     * 获取一个 位置玩家的 全部道具
     */
    public Map<Integer, Integer> getItems(int index) {
        return itemMap.get(index);
    }

    /**
     * 给一个玩家 添加一组 对局道具
     *
     * @param index
     * @param items
     */
    public void addItem(int index, List<Integer> items) {
        Map<Integer, Integer> map = itemMap.get(index);
        for (Integer item : items) {
            if (map.containsKey(item)) {
                map.put(item, map.get(item) + 1);
            } else {
                map.put(item, 1);
            }
        }
    }

    /**
     * 如果没有该道具,返回false
     *
     * @param index
     * @param cid
     */
    public boolean remove(int index, int cid) {
        Map<Integer, Integer> map = itemMap.get(index);
        if (map.containsKey(cid)) {
            map.put(cid, map.get(cid) - 1);
            if (map.get(cid) <= 0) {
                map.remove(cid);
            }
            return true;
        }
        return false;
    }


}
